1. Technical Field
This invention relates to a method and system for managing versions of a filesystem. More specifically, the invention relates to creating and removing logical versions of the filesystem.
2. Description of the Prior Art
Systems and method for managing logical filesystem versions are known in the art. FIG. 1 is a block diagram 10 of a node 12 running a single operating system instance. The node 12 has node software 14 with filesystem management logic 16. In addition, the node is in communication with local storage media 18 that includes file data space and system metadata space 19. The filesystem management logic 16 functions to manage logical versions of the filesystem. The prior art system assigns an epoch number to a logical version of the filesystem but does not include an identification system for objects within the filesystem. To determine if an object has been deleted in the prior art filesystem version, additional records must be reviewed to determine what the death epoch number for the object would have been. Accordingly, the, prior art system does not include logic for identifying objects within the logical filesystem versions that determine a range of logical filesystem versions in which the object is valid.
Similarly, FIG. 2 is a block diagram 20 of a client/server node 22 in communication with a storage area network 30. The client/server node has software 24 with filesystem logic 26. In addition, the client/server node 22 is in communication with the storage area network 30 that includes file data space 32 and filesystem metadata space 34. In opening the contents of an existing file object on the storage media in the storage area network 30, a client contacts the client/server node 22 to obtain metadata. Metadata supplies the client with information about a file, such as its attributes and location on storage devices. The client/server node 22 performs a look-up of metadata information for the requested file within the metadata 34 of the storage area network 30. The client/server node 22 communicates file metadata to the requesting client, including the location of all data blocks making up the file. Once the client knows the data block location(s), the client can access the data for the file directly from a shared storage device in communication with the storage area network 30. In addition, the client/server node 22 includes software 24 with filesystem logic 26. The filesystem logic 26 functions to create and manage near-instantaneous logical versions of a filesystem. However, the filesystem logic 26 assigns an epoch number to a logical version of the filesystem but does not include a two part identification system for objects within the filesystem. Accordingly, the prior art system does not include filesystem logic for identifying objects within the logical filesystem versions that determine a range of logical filesystem versions in which the object is valid.
Other examples of creation of a logical filesystem version is disk mirroring. With this method, two physical logical versions of the filesystem data are maintained on two disks. A near-instantaneous version of the filesystem is created by breaking the mirror apart. As such, the logical version of the filesystem data incurs the cost of duplicating the required amount of storage space. In addition, this method requires creation of another mirror pair before a subsequent logical version of the filesystem may be taken. Another example of creating a filesystem logical version is a log based filesystem in which a copy-on-write procedure is performed for every modification of a filesystem object. A periodic review of the state of the system is conducted to record the state of the filesystem and to remove non-referenced logical filesystem versions. In addition, a background process continuously unites the contents of the filesystem. Accordingly, both of these example are limited in efficiency and increased storage capacity requirements.
In known prior art systems that support logical versions of a filesystem, there are limitations associated with the requirements of increased storage space and background processing. Therefore, there is a need for near-instantaneous creation and storage of logical versions of a filesystem that both eliminates the requirement of increased storage capacity and background processing.